package cn.house.rent.mapper;

import cn.house.rent.entity.Node;
import cn.house.rent.entity.Role;
import cn.house.rent.entity.User;
import cn.house.rent.vo.NodeVo;
import cn.house.rent.vo.UserVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserMapper {

    //    登录
    User login(UserVo user);

    //根据id查询用户
    User selectById(@Param("userId") Integer userId);

    //检验用户名是否注册
    User registerCheck(@Param("userName") String userName);

    //根据id查询用户详细信息
    User selectByIdInfo(@Param("userId") Integer userId);

    //注册
    int register(User user);

    //根据id查询用户名
    String selectByIdName(@Param("userId") Integer userId);

    //根据id查询用户电话
    String selectByIdPhone(@Param("userId") Integer userId);

    //查询该用户对象所有权限id
    List<Integer> selectByRoleIdNodeId(@Param("roleId")Integer roleId);

    //查询该用户对象所有权限
    List<NodeVo> selectByNodeIds(@Param("nodeIds") List<Integer> nodeIds);
    List<Node> selectByNodeId(@Param("nodeId")Integer nodeId);

    //根据roleId查询角色名
    String selectByRoleName(@Param("roleId") Integer roleId);

    //根据条件查询查询用户信息
    List<UserVo> selectUserInfos(UserVo userVo);

    //根据用户id更改用户信息
    int updateUser(User user);

    //根据id修改用户密码
    int updatePwd(UserVo userVo);

    //根据id修改用户头像
    int updateUserImg(User user);

    //用户管理  添加用户
    int addUser(UserVo userVo);

    //用户管理 批量删除用户
    int delUsers(@Param("ids") String ids);

    //用户管理 删除用户
    int delUser(@Param("id") String id);

    //检测邮箱是否重复
    User emailCheck(@Param("email") String email);

    //找回密码
    int forget(UserVo userVo);
}
